﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using System.Collections;

public partial class XSSJ_XSSJICKHAdd : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    if (!Page.IsPostBack)
    {
      if (!ProjectPrivate.GetQX("5"))
      {
        Server.Transfer("~\\blank.aspx");
      }
      if (CWSD.GetSDZT("是"))
      {
        Server.Transfer("~\\sd.aspx");
      }
      dateJG.Text = DateTime.Now.ToString("yyyy-MM-dd");
      DataSet ds = FKFS.GetDS();
      CommonUse.BindDDL(ds, "fkid", "fkfs", "3", ddlFKFS);
      ds = CBR.GetDS();
      CommonUse.BindDDL(ds, "cbrid", "cbr", "", ddlCBR);
      ddlCBR.SelectedValue = "4";
      string sID = CommonUse.GetID("cbsjid");
      if (!string.IsNullOrEmpty(sID))
      {
        InitData(sID);
        ASPxHyperLink1.NavigateUrl = "XSSJICList.aspx";
      }
      else
      {
        ASPxHyperLink1.NavigateUrl = "XSSJICKHList.aspx";
      }
      string jfsjid = CommonUse.GetID("jfsjid");
      if (jfsjid != "")
      {
        if (JFSJ.SFGQ(jfsjid))
        {
          Response.Redirect("XSSJICList.aspx");
        }
      }
      InitKHXX(sID);
      InitSC(sID);
    }
  }

  protected void InitSC(string sID)
  {
    SqlDataReader dr = CBSJ.GetSCCB(lbKHID.Text, string.IsNullOrEmpty(sID) ? DateTime.Now.ToString("yyyyMMdd") : dateJG.Text);
    if (dr.Read())
    {
      lbSCBS.Text = dr["bybs"].ToString() + "&nbsp;";
      lbSCCBR.Text = dr["cbr"].ToString() + "&nbsp;";
      lbSCCBSJ.Text = dr["rq"].ToString() + "&nbsp;";
    }
    dr.Close();
  }

  protected void InitKHXX(string sID)
  {
    if (string.IsNullOrEmpty(sID))
    {
      lbKHID.Text = CommonUse.GetID("khid");
    }
    else
    {
      lbKHID.Text = CBSJ.GetSKHID(sID);
    }
    SqlDataReader dr = KHXX.GetXX(lbKHID.Text);
    if (dr.Read())
    {
      lbKHMC.Text = dr["khmc"].ToString();
      lbBS.Text = dr["kh"].ToString() + "&nbsp;";
    }
    dr.Close();
    string[] jg = JGGL.GetJGJJ(lbKHID.Text, DateTime.Now.ToString("yyyy-MM-dd"));
    //lbJG.Text = jg[0];
    //lbJJ.Text = jg[1];
    //lbYQXZ.Text = jg[2];
    lbJG.Value = jg[0];
    lbJJ.Value = jg[1];
    lbYQXZ.Value = jg[2];
  }

  protected void InitData(string sID)
  {
    SqlDataReader dr = CBSJ.GetCBSJ(sID);
    if (dr.Read())
    {
      txtName.Text = dr["ysql"].ToString();
      hlName.Value = txtName.Text;
      dateJG.Text = dr["rq"].ToString();
      hlJG.Value = dateJG.Text;
      ddlCBR.SelectedValue = dr["cbrid"].ToString();
      hlCBR.Value = ddlCBR.SelectedValue;
    }
    dr.Close();
    ddlFKFS.SelectedValue = JFSJ.GetFKFSID(CommonUse.GetID("jfsjid"));
    hlFKFS.Value = ddlFKFS.SelectedValue;
  }

  protected void btnConfirm_Click(object sender, EventArgs e)
  {
    //if (string.IsNullOrEmpty(dateJG.Text))
    //{
    //  lbMessage.Text = "抄表时间不能为空";
    //  return;
    //}
    if (string.IsNullOrEmpty(CommonUse.GetID("cbsjid")))
      Insert();
    else
      Update();
  }

  protected void Save(string sID, string jfsjid)
  {
    if (CBSJ.ExistHQID(lbKHID.Text, dateJG.Text))
    {
      lbMessage.Text = "本次日期之后已有数据，不能修改";
      return;
    }
    if (CBSJ.ExistWSBSJ(lbKHID.Text, dateJG.Text))
    {
      lbMessage.Text = "有未上报数据，请先处理";
      return;
    }
    if (ddlFKFS.SelectedValue == "0")
    {
      lbMessage.Text = "请选择付款方式";
      return;
    }
    //if (!CommonUse.IsInt(txtName))
    //{
    //  lbMessage.Text = "本次表数必须为整数";
    //  return;
    //}

    string sSYBS = CBSJ.GetSCBS(lbKHID.Text, Convert.ToDateTime(dateJG.Text));
    string sSCCBSJ = CBSJ.GetSCCBSJ(lbKHID.Text, Convert.ToDateTime(dateJG.Text));

    DataSet dsYQXZ = KHXX.GetYQXZ(lbKHID.Text);
    if (dsYQXZ.Tables[0].Rows.Count == 0)
    {
      lbMessage.Text = "该用户未选择用气性质，请与管理员联系";
      return;
    }

    SqlParameter[] cmdParams = null;
    string sSql = "";
    List<CommandInfo> cis = new List<CommandInfo>();
    ArrayList arrValue = new ArrayList();
    ArrayList arrLengh = new ArrayList();
    CommandInfo ci;
    #region 插入cbsj
    cis.Add(CommonUse.DeleteCI("SJLR_CBSJ", "cbsjid", sID));

    arrValue = new ArrayList();
    arrValue.Add(sID);
    arrValue.Add(SysManage.Get_User);
    arrValue.Add(ddlCBR.SelectedValue);
    arrValue.Add(lbKHID.Text);
    arrValue.Add(dateJG.Text);
    arrValue.Add((Convert.ToDouble(txtName.Text) + Convert.ToDouble(sSYBS)).ToString());
    arrValue.Add(txtName.Text);
    arrValue.Add(DBNull.Value);
    arrValue.Add("0");
    arrValue.Add(DBNull.Value);
    arrValue.Add(DBNull.Value);
    arrValue.Add(DBNull.Value);
    arrValue.Add((Convert.ToDouble(txtName.Text)));
    arrValue.Add(DBNull.Value);
    arrValue.Add(jfsjid);
    arrValue.Add(sSYBS);
    arrValue.Add(string.IsNullOrEmpty(sSCCBSJ) ? Convert.DBNull : sSCCBSJ);
    arrLengh = new ArrayList();
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("200");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("200");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    cis.Add(CommonUse.InsertCI("sjlr_cbsj", arrValue, arrLengh));
    #endregion
    #region 插入bqql
    cis.Add(CommonUse.DeleteCI("SJLR_bqql", "cbsjid", sID));

    if (dsYQXZ.Tables[0].Rows.Count == 1)
    {
      DataTable dtJG = JGGL.GetJG(dsYQXZ.Tables[0].Rows[0]["yqxzid"].ToString(), dateJG.Text);
      if (dtJG.Rows.Count == 0)
      {
        lbMessage.Text = "还未录入价格，请与管理员联系";
        return;
      }

      arrValue = new ArrayList();
      arrValue.Add(dsYQXZ.Tables[0].Rows[0]["yqxzid"].ToString());
      arrValue.Add(sID);
      arrValue.Add(txtName.Text);
      arrValue.Add("2");
      arrValue.Add(dtJG.Rows[0]["jg"].ToString());
      arrValue.Add(dtJG.Rows[0]["jj"].ToString());
      arrValue.Add(DBNull.Value);
      arrValue.Add(DBNull.Value);
      arrValue.Add(DBNull.Value);
      arrValue.Add(DBNull.Value);
      arrValue.Add(DBNull.Value);
      arrValue.Add(DBNull.Value);
      arrValue.Add(DBNull.Value);
      arrValue.Add(SysManage.Get_User);
      arrValue.Add(DateTime.Now.ToString());
      arrLengh = new ArrayList();
      arrLengh.Add("20");
      arrLengh.Add("20");
      arrLengh.Add("20");
      arrLengh.Add("20");
      arrLengh.Add("20");
      arrLengh.Add("20");
      arrLengh.Add("20");
      arrLengh.Add("20");
      arrLengh.Add("20");
      arrLengh.Add("20");
      arrLengh.Add("20");
      arrLengh.Add("20");
      arrLengh.Add("20");
      arrLengh.Add("20");
      arrLengh.Add("20");
      cis.Add(CommonUse.InsertCI("sjlr_bqql", arrValue, arrLengh));

      sSql = @"update sjlr_bqql set ysjg=ceiling(jg*bqql*100)/100,ysjj=ceiling(jj*bqql*100)/100,
      ysfy=ceiling((jg+jj)*bqql*100)/100,ssql=bqql,ssjg=ceiling(jg*bqql*100)/100,ssjj=ceiling(jj*bqql*100)/100,
      ssfy=ceiling((jg+jj)*bqql*100)/100
      where yqxzid=@0 and cbsjid=@1";
      cmdParams = new SqlParameter[2] { new SqlParameter("@0", SqlDbType.VarChar, 10), new SqlParameter("@1", SqlDbType.VarChar, 12) };
      cmdParams[0].Value = dsYQXZ.Tables[0].Rows[0]["yqxzid"].ToString();
      cmdParams[1].Value = sID;
      ci = new CommandInfo();
      ci.CommandText = sSql;
      ci.Parameters = cmdParams;
      cis.Add(ci);
    }
    #endregion
    #region 缴费数据
    cis.Add(CommonUse.DeleteCI("sjlr_jfsj", "jfsjid", jfsjid));

    double bqys = Math.Ceiling(Math.Round((Convert.ToDouble(txtName.Text) * (Convert.ToDouble(lbJG.Value) + Convert.ToDouble(lbJJ.Value))
      * 100), 1)) / 100;
    arrValue = new ArrayList();
    arrValue.Add(jfsjid);
    arrValue.Add(SysManage.Get_User);
    arrValue.Add(ddlFKFS.SelectedValue);
    arrValue.Add(lbKHID.Text);
    arrValue.Add(DateTime.Now.ToString());
    arrValue.Add(bqys);
    arrValue.Add("0");
    arrValue.Add(JFSJ.GetBH());
    arrValue.Add(0);
    arrValue.Add(0);
    arrValue.Add(bqys);
    arrValue.Add(0);
    arrLengh = new ArrayList();
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    arrLengh.Add("20");
    cis.Add(CommonUse.InsertCI("sjlr_jfsj", arrValue, arrLengh));
    #endregion
    #region 缴费明细
    //cis.Add(CommonUse.DeleteCI("sjlr_jfmx", "jf_fksjid", jfsjid));

    //arrValue = new ArrayList();
    //arrValue.Add(jfsjid);
    //arrValue.Add(lbYQXZ.Value);
    //arrValue.Add(lbJG.Value);
    //arrValue.Add(txtName.Text);
    //arrValue.Add(lbJJ.Value);
    //arrValue.Add(bqys);
    //arrValue.Add(sID);
    //arrLengh = new ArrayList();
    //arrLengh.Add("20");
    //arrLengh.Add("20");
    //arrLengh.Add("20");
    //arrLengh.Add("20");
    //arrLengh.Add("20");
    //arrLengh.Add("20");
    //arrLengh.Add("20");
    //cis.Add(CommonUse.InsertCI("sjlr_jfmx", arrValue, arrLengh));
    #endregion
    if (DbHelperSQL.ExecuteSqlTran(cis) > 0)
    {
      lbMessage.Text = "保存成功";
      ZHCX.CreateZHCX(lbKHID.Text, Convert.ToDateTime(dateJG.Text).ToString("yyyy-MM-dd"));
      ZHCX.UpdateCB(lbKHID.Text, Convert.ToDateTime(dateJG.Text).ToString("yyyy-MM-dd"), sID);
      ZHCX.UpdateJF(lbKHID.Text, DateTime.Now.ToString("yyyy-MM-dd"));
      if (CommonUse.GetID("cbsjid") != "")
      {
        string nr = "";
        if (txtName.Text != hlName.Value)
          nr += "本次用气由" + hlName.Value + "改为" + txtName.Text + "  ";
        if (dateJG.Text != hlJG.Value)
          nr += "日期由" + hlJG.Value + "改为" + dateJG.Text + "  ";
        if (ddlCBR.SelectedValue != hlCBR.Value)
          nr += "抄表人由" + ddlCBR.Items.FindByValue(hlCBR.Value).Text + "改为" + ddlCBR.SelectedItem.Text + "  ";
        if (ddlFKFS.SelectedValue != hlFKFS.Value)
          nr += "付款方式由" + ddlFKFS.Items.FindByValue(hlFKFS.Value).Text + "改为" + ddlFKFS.SelectedItem.Text + "  ";
        if (nr != "")
          rzcz.InsertRZ("修改IC卡收费:客户编码为" + lbKHID.Text + ",日期为" + dateJG.Text + nr);
      }
    }
  }

  //插入
  protected void Insert()
  {
    string sID = CommonUse.GetID("sjlr_cbsj", "cbsjid");
    if (CBSJ.ExistID(lbKHID.Text, Convert.ToDateTime(dateJG.Text).ToString("yyyyMMdd")))
    {
      lbMessage.Text = "此客户于今日已录入";
      return;
    }
    string jfsjid = CommonUse.GetID("sjlr_jfsj", "jfsjid");
    Save(sID, jfsjid);
  }

  //修改
  protected void Update()
  {
    Save(CommonUse.GetID("cbsjid"), CommonUse.GetID("jfsjid"));
  }
}
